import request from '@/utils/request'
import { getProjectList } from '@/api/organizational'

// 工程师视角 - 我的工时相关接口

// 获取个人工时汇总 - 使用真实后端接口
export function getMyWorklogSummary(params) {
  return request({
    url: '/oa/user/summary',
    method: 'get',
    params
  })
}

// 获取个人工时列表 - 使用真实后端接口
export function getMyWorklogList(params) {
  return request({
    url: '/oa/user/list',
    method: 'get',
    params
  })
}

// 获取我参与的项目列表 - 使用现有接口
export function getMyInvolvedProjects() {
  return getProjectList()
}

// 项目经理视角 - 项目工时统计相关接口

// 获取项目经理可查看的项目列表 - 使用现有接口
export function getProjectListForPM() {
  return getProjectList()
}

// 获取项目成员列表 - 模拟实现，实际需要后端支持
export function getProjectMembers(projectId) {
  // 暂时返回模拟数据，后续需要后端实现
  return Promise.resolve({
    code: 200,
    data: [
      { userId: 1, userName: '张三' },
      { userId: 2, userName: '李四' },
      { userId: 3, userName: '王五' }
    ]
  })
}

// 获取项目工时概览 - 使用真实后端接口
export function getWorklogOverview(params) {
  return request({
    url: '/oa/overview',
    method: 'get',
    params
  })
}

// 获取按成员统计的工时数据 - 使用真实后端接口
export function getWorklogStatsByMember(params) {
  return request({
    url: '/oa/by-member',
    method: 'get',
    params
  })
}

// 获取按任务统计的工时数据 - 使用真实后端接口
export function getWorklogStatsByTask(params) {
  return request({
    url: '/oa/by-task',
    method: 'get',
    params
  })
}

// 获取项目工时明细 - 使用真实后端接口
export function getProjectWorklogDetails(params) {
  return request({
    url: '/oa/project/details',
    method: 'get',
    params
  })
}

// 销售视角 - 销售业绩统计相关接口

// 获取销售人员列表 - 基于现有用户接口实现
export function getSalesList() {
  return request({
    url: '/system/user/list',
    method: 'get',
    params: {
      roleKey: 'sales' // 假设销售角色key为sales
    }
  })
}

// 获取销售项目统计数据 - 使用真实后端接口
export function getSalesSummaryStats(params) {
  return request({
    url: '/oa/sale/summary',
    method: 'get',
    params
  })
}

// 获取项目工时详情（用于销售视角的项目详情弹窗）
export function getProjectWorklogDetail(projectId) {
  return request({
    url: `/oa/project/${projectId}/worklog-detail`,
    method: 'get'
  })
}

// 通用接口

// 导出工时数据 - 后续可以添加专门的导出接口
export function exportWorklogData(params) {
  return request({
    url: '/oa/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

// 获取工时统计报表 - 后续可以添加专门的报表接口
export function getWorklogReport(params) {
  return request({
    url: '/oa/report',
    method: 'get',
    params
  })
}
